有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAXB解组错误后java文件被阻止

我有一个JAXB-marshall/unmarshall过程,它工作得很好,除了这个:有时我必须解组的文件是空的或者格式不好,所以解组会抛出一个异常。这是可以的,但是在这个异常之后,我正在解组的文件(源xml文件java对象)被阻塞。我不能用它

我注意到,在解组异常之后,试图删除或重命名该文件。如果没有异常发生,文件可以毫无问题地使用,这是应该的

有没有办法“解除阻止”这个文件?我认为必须有任何方法来释放、关闭或释放阻塞我的文件的JAXB上下文或解组器对象的资源

提前感谢,

丹尼


共 (2) 个答案

  1. # 1 楼答案

    您可以从文件中创建一个FileInputStream,然后将其解组。这样,您就可以更好地控制错误发生时发生的情况

    FileInputStream inputStram = new FileInputStream(file);
    Foo foo = (Foo) Unmarshaller unmarshal(inputStream);
    
  2. # 2 楼答案

    我错过了最后一块中的资源释放(关闭流等)。许多年前的错误!谢谢